/*     */ package com.zimbra.cs.mailclient.imap;
/*     */ 
/*     */ import java.io.IOException;
/*     */ import java.util.ArrayList;
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ public final class ResponseText
/*     */ {
/*     */   private Atom code;
/*     */   private Object data;
/*     */   private String text;
/*     */   
/*     */   public static ResponseText read(ImapInputStream is)
/*     */     throws IOException
/*     */   {
/*  43 */     ResponseText rt = new ResponseText();
/*  44 */     is.skipSpaces();
/*  45 */     if (is.peek() == 91) {
/*  46 */       rt.readCode(is);
/*     */     }
/*  48 */     rt.text = is.readText();
/*  49 */     return rt;
/*     */   }
/*     */   
/*     */   private void readCode(ImapInputStream is) throws IOException {
/*  53 */     is.skipChar('[');
/*  54 */     this.code = is.readAtom();
/*  55 */     switch (this.code.getCAtom()) {
/*     */     case ALERT: case PARSE: case READ_ONLY: case READ_WRITE: case TRYCREATE: 
/*     */       break;
/*     */     case UIDNEXT: case UIDVALIDITY: 
/*  59 */       is.skipChar(' ');
/*     */       
/*     */ 
/*  62 */       this.data = Long.valueOf(is.readNumber());
/*  63 */       break;
/*     */     case UNSEEN: 
/*  65 */       is.skipChar(' ');
/*     */       
/*     */ 
/*  68 */       this.data = Long.valueOf(is.readNumber());
/*  69 */       break;
/*     */     case BADCHARSET: 
/*  71 */       if (is.match(' ')) {
/*  72 */         is.skipSpaces();
/*  73 */         if (is.peekChar() == '(') {
/*  74 */           this.data = readCharset(is);
/*     */         }
/*     */       }
/*     */       break;
/*     */     case PERMANENTFLAGS: 
/*  79 */       is.skipChar(' ');
/*  80 */       this.data = Flags.read(is);
/*  81 */       break;
/*     */     case CAPABILITY: 
/*  83 */       is.skipChar(' ');
/*  84 */       is.skipSpaces();
/*  85 */       this.data = ImapCapabilities.read(is);
/*  86 */       break;
/*     */     case APPENDUID: 
/*  88 */       this.data = AppendResult.parse(is);
/*  89 */       break;
/*     */     case COPYUID: 
/*  91 */       this.data = CopyResult.parse(is);
/*  92 */       break;
/*     */     default: 
/*  94 */       if (is.match(' '))
/*  95 */         this.data = is.readText("]");
/*     */       break;
/*     */     }
/*  98 */     is.skipSpaces();
/*  99 */     is.skipChar(']');
/*     */   }
/*     */   
/*     */   private String[] readCharset(ImapInputStream is) throws IOException {
/* 103 */     ArrayList<String> cs = new ArrayList();
/* 104 */     is.skipChar('(');
/* 105 */     is.skipSpaces();
/* 106 */     while (!is.match(')')) {
/* 107 */       cs.add(is.readAString());
/* 108 */       is.skipSpaces();
/*     */     }
/* 110 */     return (String[])cs.toArray(new String[cs.size()]);
/*     */   }
/*     */   
/* 113 */   public Atom getCode() { return this.code; }
/* 114 */   public Object getData() { return this.data; }
/* 115 */   public String getText() { return this.text; }
/*     */   
/*     */   public CAtom getCCode() {
/* 118 */     return this.code != null ? this.code.getCAtom() : CAtom.UNKNOWN;
/*     */   }
/*     */ }


/* Location:              /home/mint/zimbrastore.jar!/com/zimbra/cs/mailclient/imap/ResponseText.class
 * Java compiler version: 7 (51.0)
 * JD-Core Version:       0.7.1
 */